package main

import "fmt"

func main() {

	/*
		空接口类型，它可以存储任意类型的值。
		在 Go 语言中，空接口是一种特殊的接口类型，不包含任何方法签名，
		因此任何类型都隐式实现了空接口，这使得它可以作为一种通用的数据容器，能够存储不同类型的数据

		interface{} 类似java中的Object
	*/
	var i1 interface{} = new(Student)
	student, ok := i1.(Student)
	if ok {
		fmt.Println(student)
	} else {
		fmt.Println("student空")
	}

	s := new(Student1)
	s.name = "ahahahah"
	var i2 interface{} = s
	student1, ok1 := i2.(Student1)
	if ok1 {
		fmt.Println(student1)
	} else {
		fmt.Println("student1空")
	}
}

type Student struct {
}

type Student1 struct {
	name string
}
